
<?php
//------------------------------------------------------------------------------
// Class              : Ctl_Admin
// Modification       :
//------------------------------------------------------------------------------
// Date(yyyy.mm.dd)   Developer                       Action
//------------------------------------------------------------------------------
// 2007.06.1         Tran Thi Nhu Quynh               var $modul="admin";
class Ctl_Admin extends ControlBase{

	//==========================================================================
	// Function    : Ctl_Admin
	// Argument    :
	// ReturnValue :
	// Creator     : Tran Thi Nhu Quynh 2009.10.01
	// Details     : AppendData record of table
	//==========================================================================


	function Ctl_Admin(){
	   	 ControlBase::ControlBase();
	}
	//==========================================================================
	// Function    : execute
	// Argument    :
	// ReturnValue :
	// Creator     : Tran Thi Nhu Quynh 2009.10.01
	// Details     : AppendData record of table
	//==========================================================================
 	function execute($action=""){
		global $db;
	    global     $arrayError,$_POST;
	    $arrayData =  array();
	    $this->modul = CM_getParameter(MODUL);
 		if ($action==""){
 			$action = CM_getParameter(ACTION);
 		}
		// Get data
		include_once(DIR_LANG_MUDUL."admin.php");
		include_once(DIR_MODEL."md_admin.class.php");
		
 		switch($action){
		
			case "Add":
				$this->doAdd();
				break;
			case "Delete":
				if($this->validate3()){;
   					$this->deleteById();
				}
				$this->doShowList();     
				break;
			case "ChangePass":
				$this->doChangePass();
				break;				
			case "logout";
				$this->doLogOut();
				break;
			case "login";
				$this->doLogin();
				break;				
			case "List":			
				$this->doShowList();
				break;
			default : 
				$this->doShowList();
 		}
        unset($arrayData);
	}
	//==========================================================================
	// Function    : doLogin
	// Creator     : QuynhTTN 2009.10.01
	// Details     : showlist admin
	//==========================================================================	
	function doLogin(){
		$objModel = new MD_Admin($this->db);
		
		$ten_dang_nhap=CM_getParameter("ten_dang_nhap");
		$mat_khau=md5(CM_getParameter("mat_khau"));
		//die(' ten dang nhap = '.$ten_dang_nhap.' mat khau = '.$mat_khau);
		$_SESSION["ten_dang_nhap_sai"]=$ten_dang_nhap;
		$_SESSION["mat_khau_sai"]=$mat_khau;
		$arrayData= $objModel->getByWhere("id,ho_ten,ten_dang_nhap,mat_khau","ten_dang_nhap='".$ten_dang_nhap."' and mat_khau='".$mat_khau."'");
		if(count($arrayData)!=0){
			$row = $arrayData[0];
			$_SESSION["id"] = $row["id"];
			$_SESSION["ho_ten"] =$row["ho_ten"];
			$_SESSION["ten_dang_nhap"] =$ten_dang_nhap;
			$_SESSION["mat_khau"] =$mat_khau;
			session_register('ssLogin');
			$id=$row["id"];
			$objModel->updateSoLan($id);
			if ($objModel->errno()){
				$arrayError[]= $objModel->error();	
			}
			unset($arrayData);
			CM_gotoPage("main.php");
			//$this->doShowList();
		}else{
			CM_gotoPage("login.php?err=1");
		}
	}
	
	//==========================================================================
	// Function    : function doShowList(){
	// Creator     : QuynhTTN 2009.10.01
	// Details     : showlist admin
	//==========================================================================
	function doShowList(){
	
		$objModel = new MD_Admin($this->db);
		$arrayData = $objModel->getAll();
		// show data
		include_once(DIR_VIEW."v_admin_list.php");
		V_AdminList($arrayData);
		unset($arrayData);
	}
	
	//==========================================================================
	// Function    : doAdd()
	// Creator     : ThanhTX 2007.06.11
	// Details     : showlist admin
	//==========================================================================
	function doAdd(){
		$objModel = new MD_Admin($this->db);
		if(!isset($_POST['Submit'])){
		   // show form add new
			include_once(DIR_VIEW."v_admin_add.php");
			V_AdminAdd($arrayData);
		}
		else{
			// check validating
			if($this->validate1() && $this->insert()){
				$this->doShowList();  
			}
			else{
				include_once(DIR_VIEW."v_admin_add.php");
				V_AdminAdd(&$_POST);
			}
		}
	}

	//==========================================================================
	// Function    : doShowList
	// Creator     : ThanhTX 2007.06.11
	// Details     : showlist admin
	//==========================================================================
	function doChangePass(){
		include_once(DIR_VIEW."v_admin_edit.php");
		$objModel = new MD_Admin($this->db);
		$id =$_SESSION["id"];
		if(isset($_POST['Submit'])){
			if($this->validate2() && $this->update()){
				$this->doShowList();                 
			}
			else{
				$arrayData =  &$_POST;
				V_AdminEdit($arrayData,"ChangePass");
			}
		}else{					
			 $arrayData = $objModel->getById($id);			 
			 if(empty($arrayData)){
				 $arrayError[]="Không có bản ghi"   ;
			 }
			 V_AdminEdit($arrayData,"ChangePass");
			 unset($arrayData);
		}
	}

	//==========================================================================
	// Function    : doLogOut
	// Creator     : ThanhTX 2007.06.11
	// Details     : sdoLogOut
	//==========================================================================	
	function doLogOut(){
		session_unregister(ssLogin);
		session_unset();
		$objModel = new MD_Admin($this->db);
		CM_gotoPage("login.php");
	}

	//==========================================================================
	// Function    : validate3
	// Argument    :
	// ReturnValue :
	// Creator     : Tran Thanh 2007.06.01
	// Details     : AppendData record of table
	//==========================================================================
 	function validate3(){
		$id =$_SESSION["id"];		
        global     $arrayError,$_POST;
		if ($id==$_GET["id"]) {
   			$arrayError[]="Tài khoản này đang được sử dụng không thể xóa được";
   			return false;
   		}
        return true;
	}
	//==========================================================================
	// Function    : validate2
	// Argument    :
	// ReturnValue :
	// Creator     : Tran Thanh 2007.06.01
	// Details     : AppendData record of table
	//==========================================================================
 	function validate2(){
		$id =$_SESSION["id"];
		$objModel = new MD_Admin($this->db);
		$arrayData = $objModel->getById($id);
        global     $arrayError,$_POST;
   		if (trim($_POST["ho_ten"])=="") {
   			$arrayError[]=NAME_NOT_NULL;
   			return false;
   		}
		if (trim($_POST["ten_dang_nhap"])=="") {
   			$arrayError[]=NAME_LOGIN_NOT_NULL;
   			return false;
   		}
		
		if (trim($_POST["mat_khau"])=="") {
   			$arrayError[]=PASWORD_NOT_NULL;
   			return false;
   		}
		if (trim($_POST["mat_khau_moi"])=="") {
   			$arrayError[]=PASWORD_NEW_NOT_NULL;
   			return false;
   		}
		if (trim($_POST["go_lai_mat_khau"])=="") {
   			$arrayError[]=COMFIG_PASWORD_NOT_NULL;
   			return false;
   		}
		if (trim($_POST["go_lai_mat_khau"])!=trim($_POST["mat_khau_moi"])) {
   			$arrayError[]=COMFIG_PASWORD_AND_PASSWORD_NOT_SAME;
   			return false;
   		}
		if (trim(md5($_POST["mat_khau"]))!=$arrayData['mat_khau']) {
   			$arrayError[]=PASWORD_OLD_NOT_EXIST;
   			return false;
   		}
        return true;
	}
	//==========================================================================
	// Function    : validate1
	// Argument    :
	// ReturnValue :
	// Creator     : Tran Thanh 2007.06.01
	// Details     : AppendData record of table
	//==========================================================================
 	function validate1(){
		  global     $arrayError,$_POST;
		if (trim($_POST["ho_ten"])=="") {
   			$arrayError[]=NAME_NOT_NULL;
   			return false;
   		}
		if (trim($_POST["ten_dang_nhap"])=="") {
   			$arrayError[]=NAME_LOGIN_NOT_NULL;
   			return false;
   		}
		
		if (trim($_POST["mat_khau"])=="") {
   			$arrayError[]=PASWORD_NOT_NULL;
   			return false;
   		}
		if (trim($_POST["go_lai_mat_khau"])=="") {
   			$arrayError[]=COMFIG_PASWORD_NOT_NULL;
   			return false;
   		}
		if (trim($_POST["go_lai_mat_khau"])!=trim($_POST["mat_khau"])) {
   			$arrayError[]=COMFIG_PASWORD_AND_PASSWORD_NOT_SAME;
   			return false;
   		}
        return true;
	}
	//==========================================================================
	// Function    : insert
	// Argument    :
	// ReturnValue :
	// Creator     : Tran Thanh 2007.06.01
	// Details     : AppendData record of table
	//==========================================================================
 	function insert(){
        global     $arrayError,$_POST;
   		$objModel = new MD_Admin($this->db);
   		$objModel->insert(&$_POST);
     	if ($objModel->errno()){
             $arrayError[]= $objModel->error();
             return false;
     	}
     	return true;
	}
  	//==========================================================================
	// Function    : deleteById
	// Argument    :
	// ReturnValue :
	// Creator     : Tran Thanh 2007.06.01
	// Details     : AppendData record of table
	//==========================================================================
 	function deleteById(){
        global     $arrayError,$_POST;
   		$objModel = new MD_Admin($this->db);
   		$objModel->deleteById(CM_getParameter("id"));
     	if ($objModel->errno()){
             $arrayError[]= $objModel->error();
             return false;
     	}
     	return true;
	}
	//==========================================================================
	// Function    : update
	// Argument    :
	// ReturnValue :
	// Creator     : Tran Thanh 2007.06.01
	// Details     : AppendData record of table
	//==========================================================================
 	function update(){
        global     $arrayError,$_POST;
   		$objModel = new MD_Admin($this->db);
   		$objModel->update(&$_POST);
     	if ($objModel->errno()){
             $arrayError[]= $objModel->error();
             return false;
     	}
     	return true;
	}
}
?>